/* app_fft_data.h */
#ifndef __APP_FFT_DATA_H__
#define __APP_FFT_DATA_H__

#include "arm_math.h"

/*******************************************************************************
 * Definitions
 ******************************************************************************/
/* 此处定义FFT的输入点数, 并不是输入数组的占用内存块的数量:
 * - 实数FFT的输入数组内存块数量为 FFT_INPUT_NUM 
 * - 复数FFT的输入数组内存块数量为 FFT_INPUT_NUM x 2
 * - 无论复数还是实数, 输出数组的内存块数量都是 FFT_INPUT_NUM x 2
 */
#define FFT_INPUT_NUM_512   512

#define FFT_INPUT_NUM FFT_INPUT_NUM_512

extern float32_t fft_input_f32[FFT_INPUT_NUM*2];
extern int32_t   fft_input_q31[FFT_INPUT_NUM*2];
extern int16_t   fft_input_q15[FFT_INPUT_NUM*2];
extern float32_t fft_output_f32[FFT_INPUT_NUM*2];
extern int32_t   fft_output_q31[FFT_INPUT_NUM*2];
extern int16_t   fft_output_q15[FFT_INPUT_NUM*2];

void app_init_rfft_input_f32(float32_t *buf, uint32_t num);
void app_init_cfft_input_f32(float32_t *buf, uint32_t num);

void app_init_rfft_input_q31(int32_t *buf, uint32_t num);
void app_init_cfft_input_q31(int32_t *buf, uint32_t num);

void app_init_rfft_input_q15(int16_t *buf, uint32_t num);
void app_init_cfft_input_q15(int16_t *buf, uint32_t num);

#endif /* __APP_FFT_DATA_H__ */

